1. Field of the Invention
The present invention relates to computer systems and data transmissions. More specifically, the present invention relates to a method and an apparatus for receiving an isochronous stream of data at a computer system that transfers the isochronous stream of data into a buffer within the main memory of the computer system without interrupting the processor.
2. Related Art
Recent advances in computer networking technologies have increased the speed with which data that can be supplied to a computer system over a computer network. This additional speed makes it possible to provide new services, such as streaming video and rapid Internet access to a computer system user. Unfortunately, the computer system performance that is required to provide such services can surpass the performance limitations of existing computer system designs.
One particular problem is encountered in receiving an "isochronous" stream of data from a remote transmitter, such as a satellite. Unlike other types of data transmissions across a computer network, an isochronous stream of data continues to pour in at a fixed rate regardless of whether the computer system is able to accommodate the additional data or not.
This can present significant challenges in designing a computer system to handle an isochronous stream of data. The isochronous data must somehow be buffered so that the data does not become lost before an application can view the data. However, the buffer has to be quite large to accommodate enough data to allow the application enough time to process the data. Consequently, providing enough memory to buffer the isochronous data inside of an interface card can significantly increase the cost of the interface card.
Furthermore, in a conventional computer system, transferring the isochronous stream of data from the interface card to an application in the computer system causes a processor interrupt to transfer each packet of data. This can greatly impede computer system performance because each interrupt consumes a large number of processor cycles, and large number of interrupts are required to transfer the isochronous stream of data one packet at a time.
What is needed is a computer system that is able to buffer an isochronous stream of data without incurring the cost involved in providing a significant amount of memory inside of an interface card to buffer the data.
Additionally, what is needed is a computer system that is able to transfer an isochronous stream of data to an application within the computer system without causing a large number of processor interrupts.